Data specifics

  • The Longitudinal Employer Household Dynamics (LEHD) program at the US Census Bureau releases the Origin Destination Employment Statistis (LODES) datasets annually based on employer-employee insurance records.
  • This data file uses data from the Origin-Destination datafile from LEHD. In the origin datafile, census blocks are listed in pairs based on where workers live and work. The original datafile has been aggregated to the county level to allow users to see where Charlottesville area residents are commuting most often. That is, of the Charlottesville area residents who work outside of the Charlottesville region, to which counties do they commute most often?
  • Data presented here are from 2018 and spatial units are based on the 2010 census. As of July of 2021, 2018 is the most recent year for which data are available. The earliest year for which data are available is 2002.
  • Some limitations: jobs counts do not include those working in defense-related industries; the data are prone to imperfect geocoding for certain jobs (jobs for companies with multiple branches are often all coded in the same location); although there are datasets from 2002-2018, these data are not suitable for longitudinal analysis; and student-workers are unlikely to be represented in these data because their jobs are not typically covered by state unemployment insurance.

Where do Charlottesville region residents/workers commute to/from most often?

outsideworkers <- cvl_lodes_all2 %>% 
  filter(w_county %in% cvlfips == F)

outsideresidents <- cvl_lodes_all2 %>%
  filter(h_county %in% cvlfips == F)

Commuter distributions

Charlottesville region residents

These are the percentile calculations for Virginia counties based on the number of Charlottesville area residents who are employed in that county. These calculations do not include the number of Charlottesville area residents who are employed within the Charlottesville region. For example, the number of people who live in Albemarle County and commute to Charlottesville City are not reflected in this calculations. The bar graphs show the most common and least common work-destination counties for Charlottesville area residents who work outside of the Charlottesville area.

quantile(na.omit(outsideworkers$commutersfromCville), probs = seq(0, 1, by= 0.05))
##      0%      5%     10%     15%     20%     25%     30%     35%     40%     45% 
##    2.00    3.25    5.00   13.50   17.00   24.00   26.50   31.00   37.00   45.25 
##     50%     55%     60%     65%     70%     75%     80%     85%     90%     95% 
##   63.50   68.25  103.00  126.75  152.50  231.75  344.00  487.75  766.50 1167.50 
##    100% 
## 3565.00

Bottom 25th percentile (the least common work-destinations for Charlottesville area residents)

# Counties that are in the bottom 25th percentile in terms of number of Charlottesville region residents commuters. 
outsideworkers25 <- outsideworkers[which(outsideworkers$commutersfromCville <= quantile(na.omit(outsideworkers$commutersfromCville), probs = 0.25)),]
ggplot(outsideworkers25, aes(x = NAME, y = commutersfromCville))+
  geom_bar(stat = 'identity', width = 0.5) + 
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  labs(x = "County", y = "Charlottesville area resident commuters")

Top 75th percentile (the most common work-destinations for Charlottesville area residents who work outside the Charlottesville region)

# Counties that are in the top 75th percentile in terms of number of Charlottesville region residents commuters. 
outsideworkers75 <- outsideworkers[which(outsideworkers$commutersfromCville >= quantile(na.omit(outsideworkers$commutersfromCville), probs = 0.75)),]
ggplot(outsideworkers75, aes(x = NAME, y = commutersfromCville))+
  geom_bar(stat = 'identity', width = 0.5) + 
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  labs(x = "County", y = "Charlottesville area resident commuters")

Charlottesville region workers

These are the percentile calculations for Virginia counties based on the number of Charlottesville area residents who are employed in that county. These calculations do not include the number of Charlottesville area residents who are employed within the Charlottesville region. For example, the number of people who live in Albemarle County and commute to Charlottesville City are not reflected in this calculations. The bar graphs show the most common and least common work-destination counties for Charlottesville area residents who work outside of the Charlottesville area.

quantile(na.omit(outsideresidents$commuterstoCville), probs = seq(0, 1, by= 0.05))
##     0%     5%    10%    15%    20%    25%    30%    35%    40%    45%    50% 
##    7.0   20.3   24.6   29.9   31.4   40.5   48.0   59.1   70.4   83.4   98.0 
##    55%    60%    65%    70%    75%    80%    85%    90%    95%   100% 
##  124.6  135.8  183.7  250.4  363.0  423.2  566.9 1030.6 1532.3 3128.0

Bottom 25th percentile (the least common work-destinations for Charlottesville area residents)

# Counties that are in the bottom 25th percentile in terms of number of Charlottesville region workers. 
outsideres25 <- outsideresidents[which(outsideresidents$commuterstoCville <= quantile(na.omit(outsideresidents$commuterstoCville), probs = 0.25)),]
ggplot(outsideres25, aes(x = NAME, y = commuterstoCville))+
  geom_bar(stat = 'identity', width = 0.5) + 
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  labs(x = "County", y = "Charlottesville area workers")

Top 75th percentile (the most common work-destinations for Charlottesville area residents who work outside the Charlottesville region)

# Counties that are in the top 75th percentile in terms of number of Charlottesville region workers. 
outsideres75 <- outsideresidents[which(outsideresidents$commuterstoCville >= quantile(na.omit(outsideresidents$commuterstoCville), probs = 0.75)),]
ggplot(outsideres75, aes(x = NAME, y = commuterstoCville))+
  geom_bar(stat = 'identity', width = 0.5) + 
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  labs(x = "County", y = "Charlottesville area workers")

Mapping commuting patterns

Charlottesville region residents

The map offers another way to visualize where Charlottesville area residents commute most often. The counts of Charlottesville area residents who commute to work within the Charlottesville region are excluded from the legend so as to limit the range and allow for easier discrimination between the surrounding counties, but the number of commuters to each of the localities in the Charlottesville region is available by clicking on the locality.

cvl_lodes_all2$res <- ifelse(cvl_lodes_all2$w_county %in% cvlfips, NA, cvl_lodes_all2$commutersfromCville)
pal <- colorNumeric("plasma", reverse = TRUE, na.color = "lightgray", domain = cvl_lodes_all2$res)
leaflet(cvl_lodes_all2) %>% 
  addProviderTiles("CartoDB.Positron") %>% 
  addPolygons(data = cvl_lodes_all2,
              fillColor = ~pal(res),
              weight = 1,
              opacity = 1,
              color = "white", 
              fillOpacity = 0.6,
              highlight = highlightOptions(
                weight = 1, fillOpacity = 0.8, bringToFront = T
              ),
              popup = paste0("County: ", cvl_lodes_all2$NAME, "<br>",
                             "Number of commuters: ", cvl_lodes_all2$commutersfromCville)) %>% 
  addLegend("bottomright", pal = pal, values = cvl_lodes_all2$res, 
            title = "Number of Cville <br> region resident <br> commuters", opacity = 0.7)

Charlottesville region workers

The map offers another way to visualize where Charlottesville area workers commute from most often. The counts of Charlottesville area workers who commute from within the Charlottesville region are excluded from the legend so as to limit the range and allow for easier discrimination between the surrounding counties, but the number of commuters from each of the localities in the Charlottesville region is available by clicking on the locality.

cvl_lodes_all2$work <- ifelse(cvl_lodes_all2$h_county %in% cvlfips, NA, cvl_lodes_all2$commuterstoCville)
pal <- colorNumeric("plasma", reverse = TRUE, na.color = "lightgray", domain = cvl_lodes_all2$work)
leaflet(cvl_lodes_all2) %>% 
  addProviderTiles("CartoDB.Positron") %>% 
  addPolygons(data = cvl_lodes_all2,
              fillColor = ~pal(work),
              weight = 1,
              opacity = 1,
              color = "white", 
              fillOpacity = 0.6,
              highlight = highlightOptions(
                weight = 1, fillOpacity = 0.8, bringToFront = T
              ),
              popup = paste0("County: ", cvl_lodes_all2$NAME, "<br>",
                             "Number of commuters: ", cvl_lodes_all2$commuterstoCville)) %>% 
  addLegend("bottomright", pal = pal, values = cvl_lodes_all2$work, 
            title = "Number of Cville <br> region workers", opacity = 0.7)

County lists

Charlottesville region residents

Below are lists of counties that employ more or less than 25 Charlottesville area residents.

  • Counties that employ 25 or more Charlottesville region residents
(sort(outsideworkers$NAME[which(outsideworkers$commutersfromCville >= 25)]))
##  [1] "Accomack"         "Alexandria"       "Alleghany"        "Amelia"          
##  [5] "Amherst"          "Appomattox"       "Arlington"        "Augusta"         
##  [9] "Bath"             "Bedford"          "Botetourt"        "Buckingham"      
## [13] "Buena Vista"      "Campbell"         "Caroline"         "Carroll"         
## [17] "Charlotte"        "Chesapeake"       "Chesterfield"     "Colonial Heights"
## [21] "Covington"        "Culpeper"         "Cumberland"       "Danville"        
## [25] "Dinwiddie"        "Essex"            "Fairfax"          "Fairfax"         
## [29] "Falls Church"     "Fauquier"         "Franklin"         "Frederick"       
## [33] "Fredericksburg"   "Gloucester"       "Goochland"        "Halifax"         
## [37] "Hampton"          "Hanover"          "Harrisonburg"     "Henrico"         
## [41] "Henry"            "James City"       "King George"      "King William"    
## [45] "Lancaster"        "Lexington"        "Loudoun"          "Lynchburg"       
## [49] "Madison"          "Manassas"         "Manassas Park"    "Martinsville"    
## [53] "Mecklenburg"      "Montgomery"       "New Kent"         "Newport News"    
## [57] "Norfolk"          "Nottoway"         "Orange"           "Page"            
## [61] "Petersburg"       "Pittsylvania"     "Portsmouth"       "Powhatan"        
## [65] "Prince Edward"    "Prince George"    "Prince William"   "Pulaski"         
## [69] "Radford"          "Rappahannock"     "Richmond"         "Richmond"        
## [73] "Roanoke"          "Roanoke"          "Rockbridge"       "Rockingham"      
## [77] "Salem"            "Shenandoah"       "Spotsylvania"     "Stafford"        
## [81] "Staunton"         "Suffolk"          "Tazewell"         "Virginia Beach"  
## [85] "Warren"           "Washington"       "Waynesboro"       "Williamsburg"    
## [89] "Winchester"       "Wise"             "Wythe"            "York"
  • Counties that employ less than 25 Charlottesville region residents
(sort(outsideworkers$NAME[which(outsideworkers$commutersfromCville < 25)]))
##  [1] "Bland"          "Bristol"        "Brunswick"      "Buchanan"      
##  [5] "Charles City"   "Clarke"         "Craig"          "Dickenson"     
##  [9] "Emporia"        "Floyd"          "Franklin"       "Galax"         
## [13] "Giles"          "Grayson"        "Greensville"    "Highland"      
## [17] "Hopewell"       "Isle of Wight"  "Lee"            "Lunenburg"     
## [21] "Mathews"        "Middlesex"      "Northampton"    "Northumberland"
## [25] "Norton"         "Patrick"        "Poquoson"       "Russell"       
## [29] "Scott"          "Smyth"          "Southampton"    "Surry"         
## [33] "Sussex"         "Westmoreland"

Charlottesville region workers

Below are lists of counties where more or less than 25 Charlottesville area workers live.

  • Counties that where 25 or more Charlottesville region workers live
(sort(outsideresidents$NAME[which(outsideresidents$commuterstoCville >= 25)]))
##   [1] "Accomack"         "Alexandria"       "Alleghany"       
##   [4] "Amelia"           "Amherst"          "Appomattox"      
##   [7] "Arlington"        "Augusta"          "Bath"            
##  [10] "Bedford"          "Botetourt"        "Bristol"         
##  [13] "Brunswick"        "Buchanan"         "Buckingham"      
##  [16] "Buena Vista"      "Campbell"         "Caroline"        
##  [19] "Carroll"          "Charles City"     "Charlotte"       
##  [22] "Chesapeake"       "Chesterfield"     "Clarke"          
##  [25] "Colonial Heights" "Covington"        "Craig"           
##  [28] "Culpeper"         "Cumberland"       "Danville"        
##  [31] "Dinwiddie"        "Essex"            "Fairfax"         
##  [34] "Fairfax"          "Falls Church"     "Fauquier"        
##  [37] "Floyd"            "Franklin"         "Frederick"       
##  [40] "Fredericksburg"   "Giles"            "Gloucester"      
##  [43] "Goochland"        "Halifax"          "Hampton"         
##  [46] "Hanover"          "Harrisonburg"     "Henrico"         
##  [49] "Henry"            "Highland"         "Hopewell"        
##  [52] "Isle of Wight"    "James City"       "King and Queen"  
##  [55] "King George"      "King William"     "Lancaster"       
##  [58] "Lee"              "Lexington"        "Loudoun"         
##  [61] "Lunenburg"        "Lynchburg"        "Madison"         
##  [64] "Manassas"         "Manassas Park"    "Mecklenburg"     
##  [67] "Middlesex"        "Montgomery"       "New Kent"        
##  [70] "Newport News"     "Norfolk"          "Northumberland"  
##  [73] "Nottoway"         "Orange"           "Page"            
##  [76] "Patrick"          "Petersburg"       "Pittsylvania"    
##  [79] "Poquoson"         "Portsmouth"       "Powhatan"        
##  [82] "Prince Edward"    "Prince George"    "Prince William"  
##  [85] "Pulaski"          "Radford"          "Rappahannock"    
##  [88] "Richmond"         "Roanoke"          "Roanoke"         
##  [91] "Rockbridge"       "Rockingham"       "Russell"         
##  [94] "Salem"            "Scott"            "Shenandoah"      
##  [97] "Smyth"            "Southampton"      "Spotsylvania"    
## [100] "Stafford"         "Staunton"         "Suffolk"         
## [103] "Surry"            "Tazewell"         "Virginia Beach"  
## [106] "Warren"           "Washington"       "Waynesboro"      
## [109] "Westmoreland"     "Williamsburg"     "Winchester"      
## [112] "Wise"             "Wythe"            "York"
  • Counties where less than 25 Charlottesville region workers live
(sort(outsideresidents$NAME[which(outsideresidents$commuterstoCville < 25)]))
##  [1] "Bland"        "Dickenson"    "Emporia"      "Franklin"     "Galax"       
##  [6] "Grayson"      "Greensville"  "Martinsville" "Mathews"      "Northampton" 
## [11] "Norton"       "Richmond"     "Sussex"